package com.spzx.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.spzx.product.api.model.ProductSku;
import com.spzx.product.query.SkuQuery;
import com.spzx.product.vo.ProductSkuVo;
import com.spzx.product.vo.SkuPriceVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品sku 服务类
 * </p>
 *
 * @author atguigu
 * @since 2025-04-28
 */
public interface IProductSkuService extends IService<ProductSku> {

    /**
     * 畅销TOP20商品列表
     * @return
     */
    List<ProductSkuVo> selectTopSale();

    /**
     * 分页条件查询商品列表
     * @param skuQuery 查询条件：关键字、分类ID、品牌ID、排序方式
     * @return
     */
    List<ProductSkuVo> selectSkuList(SkuQuery skuQuery);

    /**
     * 根据skuId查询商品最新价格
     * @param skuId
     * @return
     */
    SkuPriceVo getSkuPrice(Long skuId);

    /**
     * 根据商品ID查询商品sku
     * @param skuId
     * @return
     */
    ProductSku getSkuInfo(Long skuId);

    /**
     * 封装商品规格参数跟SKUID映射关系Map
     * @param productId
     * @return
     */
    Map<String, Long> getSkuSpecValue(Long productId);

    List<SkuPriceVo> getSkuPriceList(List<Long> skuIdList);
}
